package sv.gob.mh.dgii.model;

// Generated Apr 28, 2010 4:04:55 PM by Hibernate Tools 3.3.0.GA

import java.io.Serializable;
import java.util.Date;
import java.util.HashSet;
import java.util.Set;

import javax.persistence.AttributeOverride;
import javax.persistence.AttributeOverrides;
import javax.persistence.Column;
import javax.persistence.EmbeddedId;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.JoinColumn;
import javax.persistence.JoinColumns;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;

/**
 * GoCasoTecnico generated by hbm2java
 */
@Entity
@Table(name = "GO_CASO_TECNICO", schema = "GESOMISOS")
public class GoCasoTecnico implements Serializable {

	/**
	 * 
	 */
	private static final long serialVersionUID = -8077614201467234457L;
	private GoCasoTecnicoId id;
	private GoCaso goCaso;
	private GoTecnico goTecnico;
	private Date fhAsignacion;
	private Date fhInicio;
	private Date fhFin;
	private Integer bactivo;
	private Set<GoCasoTecnicoSuspenso> goCasoTecnicoSuspensos = new HashSet<GoCasoTecnicoSuspenso>(
			0);
	private Set<GoCasoTecnicoGestion> goCasoTecnicoGestions = new HashSet<GoCasoTecnicoGestion>(
			0);

	public GoCasoTecnico() {
	}

	public GoCasoTecnico(GoCasoTecnicoId id, GoCaso goCaso, GoTecnico goTecnico) {
		this.id = id;
		this.goCaso = goCaso;
		this.goTecnico = goTecnico;
	}

	public GoCasoTecnico(GoCasoTecnicoId id, GoCaso goCaso,
			GoTecnico goTecnico, Date fhInicio, Date fhFin, Date fhAsignacion,
			Integer bactivo, Set<GoCasoTecnicoGestion> goCasoTecnicoGestions) {
		this.id = id;
		this.goCaso = goCaso;
		this.goTecnico = goTecnico;
		this.fhInicio = fhInicio;
		this.fhFin = fhFin;
		this.fhAsignacion = fhAsignacion;
		this.bactivo = bactivo;
		this.goCasoTecnicoGestions = goCasoTecnicoGestions;
	}

	/**
	 * @return the id
	 */
	@EmbeddedId
	@AttributeOverrides( {
			@AttributeOverride(name = "ncaso", column = @Column(name = "N_CASO", nullable = false, precision = 18, scale = 0)),
			@AttributeOverride(name = "cplanes", column = @Column(name = "C_PLANES", nullable = false, precision = 3, scale = 0)),
			@AttributeOverride(name = "itecnico", column = @Column(name = "I_TECNICO", nullable = false, precision = 10, scale = 0)) })
	public GoCasoTecnicoId getId() {
		return id;
	}

	/**
	 * @param id
	 *            the id to set
	 */
	public void setId(GoCasoTecnicoId id) {
		this.id = id;
	}

	/**
	 * @return the goCaso
	 */
	@ManyToOne(fetch = FetchType.LAZY)
	@JoinColumns( {
			@JoinColumn(insertable = false, name = "N_CASO", nullable = false, referencedColumnName = "N_CASO", updatable = false),
			@JoinColumn(insertable = false, name = "C_PLANES", nullable = false, referencedColumnName = "C_PLANES", updatable = false) })
	public GoCaso getGoCaso() {
		return goCaso;
	}

	/**
	 * @param goCaso
	 *            the goCaso to set
	 */
	public void setGoCaso(GoCaso goCaso) {
		this.goCaso = goCaso;
	}

	/**
	 * @return the goTecnico
	 */
	@ManyToOne(fetch = FetchType.LAZY)
	@JoinColumn(name = "I_TECNICO", nullable = false, insertable = false, updatable = false)
	public GoTecnico getGoTecnico() {
		return goTecnico;
	}

	/**
	 * @param goTecnico
	 *            the goTecnico to set
	 */
	public void setGoTecnico(GoTecnico goTecnico) {
		this.goTecnico = goTecnico;
	}

	/**
	 * @return the fhAsignacion
	 */
	@Temporal(TemporalType.TIMESTAMP)
	@Column(name = "FH_ASIGNACION", length = 7)
	public Date getFhAsignacion() {
		return fhAsignacion;
	}

	/**
	 * @param fhAsignacion
	 *            the fhAsignacion to set
	 */
	public void setFhAsignacion(Date fhAsignacion) {
		this.fhAsignacion = fhAsignacion;
	}

	/**
	 * @return the fhInicio
	 */
	@Temporal(TemporalType.TIMESTAMP)
	@Column(name = "FH_INICIO", length = 7)
	public Date getFhInicio() {
		return fhInicio;
	}

	/**
	 * @param fhInicio
	 *            the fhInicio to set
	 */
	public void setFhInicio(Date fhInicio) {
		this.fhInicio = fhInicio;
	}

	/**
	 * @return the fhFin
	 */
	@Temporal(TemporalType.TIMESTAMP)
	@Column(name = "FH_FIN", length = 7)
	public Date getFhFin() {
		return fhFin;
	}

	/**
	 * @param fhFin
	 *            the fhFin to set
	 */
	public void setFhFin(Date fhFin) {
		this.fhFin = fhFin;
	}

	/**
	 * @return the bactivo
	 */
	@Column(name = "B_ACTIVO", precision = 1, scale = 0)
	public Integer getBactivo() {
		return bactivo;
	}

	/**
	 * @param bactivo
	 *            the bactivo to set
	 */
	public void setBactivo(Integer bactivo) {
		this.bactivo = bactivo;
	}

	/**
	 * 
	 * @return the goCasoTecnicoSuspensos
	 */
	@OneToMany(fetch = FetchType.LAZY, mappedBy = "goCasoTecnico")
	public Set<GoCasoTecnicoSuspenso> getGoCasoTecnicoSuspensos() {
		return this.goCasoTecnicoSuspensos;
	}

	/**
	 * 
	 * @param goCasoTecnicoSuspensos
	 *            the goCasoTecnicoSuspensos to set
	 */
	public void setGoCasoTecnicoSuspensos(
			Set<GoCasoTecnicoSuspenso> goCasoTecnicoSuspensos) {
		this.goCasoTecnicoSuspensos = goCasoTecnicoSuspensos;
	}

	/**
	 * @return the goCasoTecnicoGestions
	 */
	@OneToMany(fetch = FetchType.LAZY, mappedBy = "goCasoTecnico")
	public Set<GoCasoTecnicoGestion> getGoCasoTecnicoGestions() {
		return goCasoTecnicoGestions;
	}

	/**
	 * @param goCasoTecnicoGestions
	 *            the goCasoTecnicoGestions to set
	 */
	public void setGoCasoTecnicoGestions(
			Set<GoCasoTecnicoGestion> goCasoTecnicoGestions) {
		this.goCasoTecnicoGestions = goCasoTecnicoGestions;
	}

}
